/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package carreras.datos;

import carreras.datos.connection.DBConnector;
import carreras.logger.CarrerasLogger;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author Fanky10 <fanky10@gmail.com>
 */
public class DataCarrera extends data.Data{
    public int nuevaCarrera(int id_competencia) throws SQLException{
        String ins_carrera = "insert into carrera (id,id_competencia) values (null,"+id_competencia+")";
        db.executeUpdate(ins_carrera);
        String query = "Select max(id) id_carrera from carrera";
        ResultSet rs = db.getResultSet(query);
        while(rs.next()){
            return rs.getInt("id_carrera");
        }
        throw new SQLException("no se pudo recuperar el id max de carrera");
    }

    public void addCarrilCarrera(carreras.entidades.CarrilCarrera cc, carreras.entidades.Carrera c) throws SQLException {
        try {
            db.startTransaction();
            for (carreras.entidades.TipoTiempo tt : cc.getTiempos()) {
                String insert = "INSERT INTO carril_carrera (id,numero_carril,id_corredor,id_auto,tipo_tiempo, tiempo, id_carrera) "
                        + "VALUES (null,"
                        + cc.getNro_carril() + ","
                        //TODO: estado_final
                        + cc.getCorredor().getId() + ","
                        + +cc.getAuto().getId() + ","
                        + tt.getId() + ","
                        + DBConnector.traduce_nro(tt.getTiempo()) + ","
                        + c.getId() + ")";
                db.executeUpdate(insert);
            }
            db.commitTransaction();
        } catch (SQLException ex) {
            db.rollbackTransaction();
            CarrerasLogger.info(DataCarrera.class, "hubo un problema en db pero fue rollbacked sucessfully!");
            throw ex;
        }
//        String insert = "INSERT INTO carril_carrera (id,numero_carril,id_corredor,id_auto,id_carrera) "
//                + "VALUES (null,"
//                + cc.getNro_carril() +","
//                //TODO: estado_final
//                + cc.getCorredor().getId()+","+
//                + cc.getAuto().getId()+","
//                + c.getId()+")";
//        try{
//            db.startTransaction();
//            db.executeUpdate(insert);
//            String get_id = "select max(id) id_carril_carrera from carril_carrera";
//            ResultSet rs = db.getResultSet(get_id);
//            while(rs.next()){
//                int id_carril_carrera = rs.getInt("id_carril_carrera");
//                for(carreras.entidades.TipoTiempo tt:cc.getTiempos()){
//                    String insert_tiempo = "INSERT INTO tiempo_carril_carrera (id, tipo_tiempo,tiempo,id_carril_carrera)"
//                            + " VALUES (null,"
//                            + tt.getId()+","
//                            + DBConnector.traduce_nro(tt.getTiempo())+","
//                            + id_carril_carrera+")";
//                    db.executeUpdate(insert_tiempo);
//                }
//            }
//            db.commitTransaction();
//        }catch(SQLException ex){
//            db.rollbackTransaction();
//            CarrerasLogger.info(DataCarrera.class, "hubo un problema en db pero fue rollbacked sucessfully!");
//            throw ex;
//        }
        
    }
}
